﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Entities.PBKT;
using Entities.Admin;

namespace BLL.PBKT
{
	public class ScheduleManager
	{
		public static List<String> GetDSMaTrongTai(LichThiDau ltd)
		{
			List<String> list = new List<string>();
			List<QLTranDau> dsCTTD = QLTranDau.Objects.Find(x => x.MaLichThiDau == ltd.MaLichThiDau).ToList();
			foreach (var item in dsCTTD)
			{
				//list = new List<string>();
				if (item.HinhThuc < 4)
					list.Add(item.MaNguoiTG);
			}
			return list;
		}
		public static List<String> GetDSMaCuaThu(LichThiDau ltd)
		{
			List<String> list = new List<string>();
			if (ltd != null)
			{
				List<ChiTietTranDau> dsCTTD = ChiTietTranDau.Objects.Find(x => x.MaLichThiDau == ltd.MaLichThiDau).ToList();
				foreach (var item in dsCTTD)
				{
					//list = new List<string>();
					//if (item.HinhThuc > 4)
					if (!list.Contains(item.MaCT))
						list.Add(item.MaCT);
				}
				return list;
			}
			return null;
		}
		public static List<LichThiDau> GetLichThiDau(TrongTai tt)
		{
			try
			{
				List<LichThiDau> outList = new List<LichThiDau>();
				List<QLTranDau> dsCT = QLTranDau.Objects.Find(x => x.MaNguoiTG == tt.MaTT).ToList();
				foreach (var item in dsCT)
				{
					LichThiDau ltd = LichThiDau.Objects.GetById(item.MaLichThiDau);
					outList.Add(ltd);
				}
				return outList;

			}
			catch (Exception)
			{

				return null;
			}
		}
		public static List<CauThu> GetListCauThu(List<String> maCT)
		{
			try
			{
				List<CauThu> ds = new List<CauThu>();
				foreach (var item in maCT)
				{
					CauThu ct = CauThu.Objects.GetById(item);
					ds.Add(ct);
				}
				return ds;
			}
			catch (Exception)
			{

				return null;
			}

		}
		public static List<ChiTietTranDau> GetListCTTD(LichThiDau ltd, List<String> maCT)
		{
			try
			{
				List<ChiTietTranDau> ds = new List<ChiTietTranDau>();
				foreach (var item in maCT)
				{

					List<ChiTietTranDau> ct = ChiTietTranDau.Objects.Find(x => x.MaLichThiDau == ltd.MaLichThiDau && x.MaCT == item).ToList();
					ds.AddRange(ct);
				}
				return ds;
			}
			catch (Exception)
			{

				return null;
			}

		}
		public static bool KiemTraTrungMaTT(List<String> dsTT, String mTT)
		{

			return dsTT.Contains(mTT);

		}
		public static int LayDiem(LichThiDau ltd, DoiTuyen dt)
		{
			LichThiDau ltdTam = LichThiDau.Objects.GetById(ltd.MaLichThiDau);
			if (ltdTam.MaDoi1 == dt.MaDT)
				return ltdTam.DiemSoDoi1;
			else
				if (ltdTam.MaDoi2 == dt.MaDT)
					return ltdTam.DiemSoDoi2;
				else
					return 0;
		}
		public static int LayBanThang(LichThiDau ltd, DoiTuyen dt)
		{
			LichThiDau ltdTam = LichThiDau.Objects.GetById(ltd.MaLichThiDau);
			if (ltdTam.MaDoi1 == dt.MaDT)
				return ltdTam.BanThangD1;
			else
				if (ltdTam.MaDoi2 == dt.MaDT)
					return ltdTam.BanThangD2;
				else
					return 0;
		}
		public static int LayBanThua(LichThiDau ltd, DoiTuyen dt)
		{
			LichThiDau ltdTam = LichThiDau.Objects.GetById(ltd.MaLichThiDau);
			if (ltdTam.MaDoi1 == dt.MaDT)
				return ltdTam.BanThuD1;
			else
				if (ltdTam.MaDoi2 == dt.MaDT)
					return ltdTam.BanThuD2;
				else
					return 0;
		}
		public static bool UpdateDiem(DoiTuyen dt, int diem)
		{
			return DoiTuyen.Objects.Update(x => x.MaDT == dt.MaDT, x => new DoiTuyen
			{
				Diem = diem
			});
		}
		public static bool UpdateSoBanThang(DoiTuyen dt, int sobanThang)
		{
			return DoiTuyen.Objects.Update(x => x.MaDT == dt.MaDT, x => new DoiTuyen
			{
				SoBanThang = sobanThang
			});
		}
		public static bool UpdateSoBanThua(DoiTuyen dt, int soBanThua)
		{
			return DoiTuyen.Objects.Update(x => x.MaDT == dt.MaDT, x => new DoiTuyen
			{
				SoBanThua = soBanThua
			});
		}
		
	}
}
